<!DOCTYPE html>
<html>

<head>
    <title>Chat</title>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/js/bootstrap.bundle.min.js"></script>
</head>

<div style="height: 700px ;">
    <canvas id="myChart" ></canvas>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
    let VarX = 0;
    let output = [2,3,4,5] ;

    const ws = new WebSocket('ws://127.0.0.1:8000/room/123/');

    const ctx = document.getElementById('myChart').getContext('2d');

    // 初始化图表
    const chart = new Chart(ctx, {
        // 图表类型
        type: 'line',
        // 数据集
        data: {
            labels: [], // x轴标签
            datasets: [{
                label: '网页示波器',
                data: [], // y轴数据
                backgroundColor: 'rgba(0, 123, 255, 0.5)', // 数据点的背景颜色
                borderColor: 'rgba(0, 123, 255, 1)', // 数据线的颜色
                borderWidth: 1 // 数据线的宽度
            }]
        },
        // 配置项
        options: {
            responsive: true, // 是否响应式
            scales: {
                y: {
                    beginAtZero: true // y轴从0开始
                }
            },

        }
    });

    ws.onmessage = function (event) {

        // 添加新的数据点
        // var xValue = new Date().toLocaleTimeString(); // 当前时间作为x轴的值
        chart.data.labels.push(VarX);
        VarX = VarX + 1 ;
        chart.data.datasets[0].data.push(event.data);

        // 清空data,释放缓存

        if(chart.data.datasets[0].data.length > 100)
            chart.data.datasets[0].data = chart.data.datasets[0].data.splice(-100)

        if(chart.data.labels.length > 100) {
            chart.data.labels = chart.data.labels.splice(-100)
        }


        // if(chart.data.datasets[0].data)
        console.log(chart.data.datasets[0].data.length) // 762
        // if(chart.data.datasets[0].data.length > 200) {
        //    chart.data.datasets[0].data = []
        // }

        // 更新图表
        chart.update("none");
        {#chart.update();#}
    };

    function sendMessage(event) {
        let input = document.getElementById("messageText")
        ws.send(input.value)
        input.value = ''
        event.preventDefault()
    }
</script>

<body>
    <div class="container">
        <button onclick="download()" type="button" class="btn btn-primary">下载数据</button>

        <script>
            function  download() {
                console.log("download")
            }
        </script>
    </div>
</body>


</html>
